package com.jingxuan.mapper;

import com.jingxuan.entity.Comment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 评论数据访问层
 */
@Mapper
public interface CommentsMapper {
    
    /**
     * 添加评论
     */
    int insertComment(Comment comment);
    
    /**
     * 根据商品ID查询评论列表（分页）
     */
    List<Comment> selectCommentsByProductId(@Param("productId") String productId,
                                           @Param("offset") Integer offset,
                                           @Param("pageSize") Integer pageSize);
    
    /**
     * 根据商品ID查询所有评论（不分页，用于排行榜算法）
     */
    List<Comment> selectAllCommentsByProductId(@Param("productId") String productId);
    
    /**
     * 根据用户ID查询评论列表（分页）
     */
    List<Comment> selectCommentsByUserId(@Param("userId") Long userId, 
                                        @Param("offset") Integer offset, 
                                        @Param("pageSize") Integer pageSize);
    
    /**
     * 根据商品ID统计评论数量
     */
    int countCommentsByProductId(@Param("productId") String productId);
    
    /**
     * 根据用户ID统计评论条数
     */
    int countCommentsByUserId(@Param("userId") Long userId);
    
    /**
     * 根据ID查询评论
     */
    Comment selectCommentById(@Param("id") Long id);
    
    /**
     * 删除评论
     */
    int deleteCommentById(@Param("id") Long id);
    
    /**
     * 更新点赞数
     */
    int updateLikeCount(@Param("id") Long id, @Param("likeCount") Integer likeCount);
}
